10 REM DISK PATCH BY KEVIN ANDERSON 12 REM REVISION A.4 2/20/84 15 DIM B$(255),D$(255),K$(75):N$=CHR$(0) 16 FORI=1TO75:READK$(I):NEXT 17 FORI=0TO255:B$(I)=N$:D$(I)=N$:NEXT 18 POKE53280,15:POKE53281,15:PRINTCHR$(142);"[144]" 20 PRINT"[147][146]   PATCH [146][144]" 30 PRINT" F1[146] READ A BLOCK INTO THE BUFFER" 35 PRINT" F2[146] PRINT THE BUFFER" 40 PRINT" F3[146] EDIT THE BUFFER" 45 PRINT" F4[146] COMPARE BUFFER WITH DISK" 50 PRINT" F5[146] WRITE THE BUFFER TO DISK" 55 PRINT" F6[146] CHECK DISK STATUS" 60 PRINT" F7[146] EXIT 70 [161]A$:[139][198](A$[170]N$)[179]133[176][198](A$[170]N$)[177]139[167]70 72 [145]([198](A$[170]N$)[171]132)[137] 200,500,2000,80,3000,5000,6000 80 [153]"* BYE *":[128] 200 [153]"LOAD  READ BLOCK FROM DISK WAITSTOP":[153]:[153] 210 [133]"TRACK (1-35)";TR 222 [139]TR[177]35[176]TR[179]1[167][153]"ON";:[137]210 223 [139]TR[177]30[167]SM[178]16:[137]227 224 [139]TR[177]24[167]SM[178]17:[137]227 225 [139]TR[177]17[167]SM[178]18:[137]227 226 SM[178]20 227 [153]"SECTOR (0-";SM;"CMD)";:[133] SE 228 [139]SE[177]SM[176]SE[179]0[167][153]"ON";:[137]227 230 [159]15,8,15,"I0":[159]2,8,2,"#" 240 [152]15,"U1:"2;0;TR;SE:[152]15,"B-P:2,0" 270 [129]I[178]0[164]255:[161]#2,A$:B$(I)[178][200]((A$[170]N$),1):[130] 340 [160]2:[160]15 350 [137]20 500 P[178][171]100 510 [153]"LOAD  EDIT BLOCK WAITSTOP" 520 [153]" F1WAIT LIST NEXT 16 VALUES" 530 [153]" F3WAIT LIST PREVIOUS 16 VALUS" 540 [153]" F5WAIT CHANGE A VALUE" 550 [153]" F7WAIT EXIT EDIT ROUTINE" 552 [153]:[153]"WORD# HEX DEC ASCII BASIC" 555 [137]650 560 [161]A$:[139]A$[178]""[167]560 570 [139]A$[178]"LET"[167][137]20 580 [139]A$[178]"INPUT"[167]P[178]P[170]16:[137]650 590 [139]A$[178]"DIM"[167]P[178]P[171]16:[137]650 600 [139]A$[178]"READ"[167]800:[143] CHANGE A VALUE 610 [137]560 650 [143] LIST 16 VALUES IN HEX DECIMAL ASCII 655 [139]P[179]0[167]P[178]0 656 [139]P[177]255[171]15[167]P[178]255[171]15 660 [153]"" 670 [129]I[178]P[164]P[170]15 675 A$[178]B$(I) 685 N[178][198](A$):H%[178]N[173]16:L%[178]N[171]16[172]H% 687 H%[178]H%[170]48:L%[178]L%[170]48 690 H%[178]H%[171]7[172](H%[177]57):L%[178]L%[171]7[172](L%[177]57) 695 H$[178][199](H%)[170][199](L%) 696 [153]" "; 697 [153]"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD"; 698 S[178]2:[139]I[179]100[167]S[178]3:[139]I[179]10[167]S[178]4 700 [153]I;[166]S);H$,[166]4);[198](A$),"'"; 705 [139][198](A$)[177]31[175][198](A$)[179]91[167][153]A$;"'"; 707 [139][198](A$)[179]32[176][198](A$)[177]90[167][153]" '"; 708 [139][198](A$)[179]128[176][198](A$)[177]203[167][153] 709 [139][198](A$)[177]127[175][198](A$)[179]204[167][153][166]5);K$([198](A$)[171]127) 710 [130]I 720 [137]560 800 [153]""; 805 [153]" ":[153]"ON"; 810 [133]"WORD #";WN 813 [139]WN[179]0[176]WN[177]255[167]800 815 [153]"ON ":[153]"ON"; 820 [133]"ASCII, DECIMAL, OR HEX";MO$ 822 [153]"ON ":[153]"ON"; 825 NX[178][171]1000 830 [139][200](MO$,1)[178]"A"[167][133]"NEW CHARACTER";NC$:NX[178][198](NC$) 835 [139][200](MO$,1)[178]"D"[167][133]"NEW DECIMAL";NV:NX[178]NV 840 [139][200](MO$,1)[178]"H"[167][133]"NEW HEX";HX$ 880 [139]NX[179][177][171]1000[167]1000:[143] INSERT NEW VALUE 890 [139][200](MO$,1)[179][177]"H"[167][153]"";:[137]815 895 [139][195](HX$)[178]1[167]HX$[178]"0"[170]HX$ 900 H%[178][198](HX$)[171]48 :L%[178][198]([202](HX$,2,1))[171]48 910 [139]H%[177]9[167]H%[178]H%[171]7 920 [139]L%[177]9[167]L%[178]L%[171]7 930 NX[178]16[172]H%[170]L% 1000 [139]NX[179]0[176]NX[177]255[167][153]"OUT OF RANGE":[129]I[178]1[164]1000:[130]I:[137]510 1010 NN$[178][199](NX) 1020 B$(WN)[178]NN$ 1200 [137]510 2000 [153]"LOAD  WRITE BLOCK TO DISK WAITSTOP" 2010 [153]"" 2020 [153]"";TR:[153]"ON";:[133]"TRACK ";TR 2030 [153]"";SE:[153]"ON";:[133]"SECTOR";SE 2040 [153]:[153]"TRACK";TR;" SECTOR";SE;" CORRECT";:[133] A$ 2050 [139]A$[179][177]"Y"[167]2000 2060 [159]15,8,15:[159]2,8,2,"#" 2070 [152]15,"B-P:"5;0 2075 [152]15,"M-W:"[199](0)[199](5);1;B$(0) 2090 [129]I[178]1[164]255:[152]2,B$(I);:[130]I 2091 [152]15,"U2:"2;0;TR;SE 2099 [160]2:[160]15:[137]20 3000 [153]"LOAD  PRINT BUFFER WAITSTOP" 3008 [153]"F1WAIT HEX" 3010 [153]"F3WAIT ASCII" 3011 [153]"F5WAIT DECIMAL" 3013 [161]A$:[139]A$[178]""[167]3013 3022 [159]4,4 3024 [152]4," ":[152]4," ":[152]4," " 3026 [152]4," TRACK";TR;" SECTOR";SE 3030 [152]4," " 3050 [129] I[178]0[164]240[169]16:[152]4,I; 3052 [139]I[179]10[167][152]4," "; 3053 [139]I[179]100[167][152]4," "; 3055 [129]L[178]1[164]16 3060 C$[178]B$(I[170]L[171]1) 3062 [139]A$[179][177]"DIM"[167]3070 3064 [139][198](C$)[177]30[175][198](C$)[179]90[167]H$[178]" "[170]C$:[137]4030 3066 H$[178]" *":[137]4030 3070 [139]A$[178]"INPUT"[167]3079 3071 H$[178][202]([196]([198](C$)),2) 3073 [139][195](H$)[179]3[167]H$[178]H$[170]" ":[137]3073 3077 [137]4030 3079 N[178][198](C$):H%[178]N[173]16:L%[178]N[171]16[172]H% 3080 H%[178]H%[170]48:L%[178]L%[170]48 3090 H%[178]H%[171]7[172](H%[177]57):L%[178]L%[171]7[172](L%[177]57) 4000 H$[178][199](H%)[170][199](L%) 4030 [139]A$[178]"INPUT"[176]A$[178]"DIM"[167] [152]4,H$;" "; 4031 [139]A$[178]"READ"[167][152]4,H$;" "; 4040 [130] L 4045 [152]4," " 4048 [130]I 4050 [152]4:[152]4:[160]4:[137]20 5000 [153]"LOAD  COMPARE BUFFER WITH DISK WAITSTOP":[153]:[153] 5210 [133]"TRACK (1-35)";TC 5222 [139]TC[177]35[176]TC[179]1[167][153]"ON";:[137]5210 5223 [139]TC[177]30[167]SM[178]16:[137]5227 5224 [139]TC[177]24[167]SM[178]17:[137]5227 5225 [139]TC[177]17[167]SM[178]18:[137]5227 5226 SM[178]20 5227 [153]"SECTOR (0-";SM;"CMD)";:[133] SC 5228 [139]SC[177]SM[176]SC[179]0[167][153]"ON";:[137]5227 5230 [159]15,8,15,"I0":[159]2,8,2,"#" 5240 [152]15,"U1:"2;0;TC;SC 5245 [152]15,"B-P:2,0" 5270 [129]I[178]0[164]255:[161]#2,A$:D$(I)[178][200]((A$[170]N$),1):[130] 5280 [160]2:[160]15 5300 [143] NOW COMPARE THE TWO 5310 [153]: EC[178]0 5320 [129]I[178]0[164]255 5330 [139]B$(I)[179][177]D$(I)[167][153]" #";I,"BUF:";[198](B$(I)),"DSK:";[198](D$(I)):EC[178]EC[170]1 5335 [161]A$:[139]A$[178]""[167]5340 5336 [161]A$:[139]A$[178]""[167]5336 5340 [130] 5350 [139] EC[178]0[167][153]:[153]"PERFECT MATCH" 5360 [139] EC[177]0[167][153]:[153]" ";EC;"MISMATCHES" 5370 [153]:[153]" HIT A KEY TO CONTINUE" 5380 [161]A$:[139]A$[178]""[167]5380 5390 [137] 20 6000 [153]"LOAD  CHECK DISK STATUS WAITSTOP" 6020 [153]:[153]:[153]:[159]15,8,15:[132]15,AA,AA$,BB,CC 6030 [160]15:[153]AA,AA$,BB,CC 6060 [153]:[153]" HIT A KEY TO CONTINUE" 6070 [161]A$:[139]A$[178]""[167]6070 6080 [137]20 20000 [143] 75 BASIC KEY WORDS 20010 [131] END,FOR,NEXT,DATA,INPUT#,INPUT,DIM,READ,LET,GOTO,RUN,IF,RESTORE,GOSUB 20020 [131] RETURN,REM,STOP,ON,WAIT,LOAD,SAVE,VERIFY,DEF,POKE,PRINT#,PRINT,CONT 20030 [131] LIST,CLR,CMD,SYS,OPEN,CLOSE,GET,NEW,TAB(,TO,FN,SPC(,THEN,NOT,STEP 20040 [131] +,-,*,/,^,AND,OR,>,=,<,SGN,INT,ABS,USR,FRE,POS,SQR,RND,LOG,EXP,COS 20050 [131] SIN,TAN,ATN,PEEK,LEN,STR$,VAL,ASC,CHR$,LEFT$,RIGHT$,MID$